function CocktailSort() {}

CocktailSort.sort = function(array) {
    var tmp = 0;
    for (var i = 0; i < array.length / 2; i++) {
        // 有序标记，每一轮的初始值都是true
        var isSorted = true;
        // 奇数轮，从左向右比较和交换
        for (var j = i; j < array.length - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                tmp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = tmp;
                // 有元素交换，所以不是有序的，标记变为false
                isSorted = false;
            }
        }
        if (isSorted) {
            break;
        } // 在偶数轮之前，将isSorted重新标记为true
        isSorted = true;
        // 偶数轮，从右向左比较和交换
        for (var j = array.length - i - 1; j > i; j--) {
            if (array[j] < array[j - 1])

            {
                tmp = array[j];
                array[j] = array[j - 1];
                array[j - 1] = tmp;
                // 因为有元素进行交换，所以不是有序的，标记变为false
                isSorted = false;
            }
        }
        if (isSorted) {
            break;
        }
    }
};


var array = new Array(2, 3, 4, 5, 6, 7, 8, 1);
CocktailSort.sort(array);
console.log(array);